package main

import (
	"io"
	"os"
	"path"

	"github.com/gin-gonic/gin"
	"ttsx/server/common/bootstrap"
	"ttsx/server/common/global"
	"ttsx/server/router"
)

func main() {
	bootstrap.InitConfig()               // 初始化配置文件
	global.App.Log = bootstrap.InitLog() // 初始化日志
	global.App.Log.Info("Initialization Logger Server success!")

	global.App.DB = bootstrap.InitMysql() // 初始化mysql
	global.App.Log.Info("Initialization Mysql Server success!")

	global.App.RDB = bootstrap.InitRedis() // 初始化redis
	global.App.Log.Info("Initialization Redis Server success!")


	// 记录gin默认http请求日志
	gin.DisableConsoleColor()
	fs, err := os.Create(path.Join(global.App.Config.Log.LogsPath, global.App.Config.App.AppLogFile))
	if err != nil {
		global.App.Log.Error("创建日志文件失败", zap.Error(err))
		fs = os.Stdout
	}
	gin.DefaultWriter = io.MultiWriter(fs)

	r := gin.Default()

	// 设置静态文件
	r.Static("/static", "../../web/static/")
	r.LoadHTMLGlob("../../web/templates/**/*")

	// 配置路由组
	app := r.Group("/" + global.App.Config.App.AppName)
	{
		router.InitRouters(app)
	}
	global.App.Log.Info("服务已启动...")
	r.Run(global.App.Config.App.APPUrl + ":" + global.App.Config.App.AppPort)
}
